using System;
using System.Collections.Generic;
using System.Text;
using Entidades;
using DataAccessArquitectura;
using System.Data;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

/*
 * Nombre archivo: datos_globalesBuilder.cs 
 *
 * Descripcion: Manipulacion de la tabla datos_globales, con los metodos de consulta, grabado, actulaizacion
 * y recuperacion de un registro
 *
 * Autor: PLUS-EW
 * Fecha: 23/10/2011 14:54:58
 *
 * Historial
 * ---------------------------------------------------------
 * Autor            Fecha               Modificación
 *
 */

namespace Reglas_Negocio
{
	public class datos_globalesBuilder
	{
		private const enmTipoBaseDatos mTipoBD = enmTipoBaseDatos.MySQL;

		#region < METODOS PUBLICOS CONSULTA >
		public static DataTable ListarTodos()
		{
			try
			{
				return ListarTodos("");
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		public static DataTable ListarTodos(string filtro)
		{
			DataTable r = new DataTable();
			try
			{
				ArquitecturaDB bd = new ArquitecturaDB(mTipoBD);
				r = bd.EjecutarSelectDs("*", "datos_globales", filtro).Tables[0];
			}
			catch (Exception ex)
			{
				throw ex;
			}
			return r;
		}
		public static bool Existe(string filtro)
		{
			int numero = 0;
			bool r = false;
			try
			{
				ArquitecturaDB bd = new ArquitecturaDB(mTipoBD);
				numero = Convert.ToInt32(bd.EjecutarSelectScalar("COUNT(*)", "datos_globales", filtro));
				r = (numero > 0);
			}
			catch (Exception ex)
			{
				throw ex;
			}
			return r;
		}
		#endregion

		#region < METODOS PUBLICOS GRABADO >
		public static bool GrabarViaProcedimiento(datos_globales datos)
		{
			int numero = 0;
			bool r = false;
			string filtro = "";
			try
			{
				string strConectionInsert = "INSERT INTO datos_globales (porcent_extra,porcent_suplementaria,porcent_nocturna,nro_horas_reglamentaria,nro_horas_suplementarias,estado_dat_glob,fecha_registro_dat_glob,id_empr_fk) VALUES (?porcent_extra,?porcent_suplementaria,?porcent_nocturna,?nro_horas_reglamentaria,?nro_horas_suplementarias,?estado_dat_glob,?fecha_registro_dat_glob,?id_empr_fk);";
				string strConectionUpdate = "UPDATE datos_globales SET porcent_extra = ?porcent_extra,porcent_suplementaria = ?porcent_suplementaria,porcent_nocturna = ?porcent_nocturna,nro_horas_reglamentaria = ?nro_horas_reglamentaria,nro_horas_suplementarias = ?nro_horas_suplementarias,estado_dat_glob = ?estado_dat_glob,fecha_registro_dat_glob = ?fecha_registro_dat_glob,id_empr_fk = ?id_empr_fk WHERE id_dat_glob=?id_dat_glob;";

				ArquitecturaDB bd = new ArquitecturaDB(mTipoBD);
				MySqlParameter psqlId_dat_glob = new MySqlParameter("?id_dat_glob", MySqlDbType.Int32);
				MySqlParameter psqlPorcent_extra = new MySqlParameter("?porcent_extra", MySqlDbType.Decimal,10);
				MySqlParameter psqlPorcent_suplementaria = new MySqlParameter("?porcent_suplementaria", MySqlDbType.Decimal,10);
				MySqlParameter psqlPorcent_nocturna = new MySqlParameter("?porcent_nocturna", MySqlDbType.Decimal,10);
				MySqlParameter psqlNro_horas_reglamentaria = new MySqlParameter("?nro_horas_reglamentaria", MySqlDbType.Int32);
				MySqlParameter psqlNro_horas_suplementarias = new MySqlParameter("?nro_horas_suplementarias", MySqlDbType.Int32);
				MySqlParameter psqlEstado_dat_glob = new MySqlParameter("?estado_dat_glob", MySqlDbType.VarChar,20);
				MySqlParameter psqlFecha_registro_dat_glob = new MySqlParameter("?fecha_registro_dat_glob", MySqlDbType.Datetime);
				MySqlParameter psqlId_empr_fk = new MySqlParameter("?id_empr_fk", MySqlDbType.Int32);

				psqlId_dat_glob.Value = datos.Id_dat_glob;
				psqlPorcent_extra.Value = datos.Porcent_extra;
				psqlPorcent_suplementaria.Value = datos.Porcent_suplementaria;
				psqlPorcent_nocturna.Value = datos.Porcent_nocturna;
				psqlNro_horas_reglamentaria.Value = datos.Nro_horas_reglamentaria;
				psqlNro_horas_suplementarias.Value = datos.Nro_horas_suplementarias;
				psqlEstado_dat_glob.Value = datos.Estado_dat_glob;
				psqlFecha_registro_dat_glob.Value = datos.Fecha_registro_dat_glob;
				psqlId_empr_fk.Value = datos.Id_empr_fk;

				if (!Existe("id_dat_glob=" + datos.Id_dat_glob))
				{
					numero = bd.EjecutarProcedimientoMySQL(strConectionInsert
							, psqlId_dat_glob
							, psqlPorcent_extra
							, psqlPorcent_suplementaria
							, psqlPorcent_nocturna
							, psqlNro_horas_reglamentaria
							, psqlNro_horas_suplementarias
							, psqlEstado_dat_glob
							, psqlFecha_registro_dat_glob
							, psqlId_empr_fk
							);
					MessageBox.Show("Se grabo [datos_globales] exitosamente....","Información",MessageBoxButtons.OK,MessageBoxIcon.Information);
				}
				else
				{
					numero = bd.EjecutarProcedimientoMySQL(strConectionUpdate
							, psqlId_dat_glob
							, psqlPorcent_extra
							, psqlPorcent_suplementaria
							, psqlPorcent_nocturna
							, psqlNro_horas_reglamentaria
							, psqlNro_horas_suplementarias
							, psqlEstado_dat_glob
							, psqlFecha_registro_dat_glob
							, psqlId_empr_fk
							);
					MessageBox.Show("Se actualizó [datos_globales] exitosamente....","Información",MessageBoxButtons.OK,MessageBoxIcon.Information);
				}
				r = (numero < 0);
			}
			catch (Exception ex)
			{
				throw ex;
			}
			return r;
		}

		public static void GrabarViaSql(datos_globales datos)
		{
			try
			{
				ArquitecturaDB bd = new ArquitecturaDB(mTipoBD);
				string filtro = string.Format("id_dat_glob='{0}'", datos.Id_dat_glob);
				if (!Existe(filtro))
				{
					bd.EjecutarInsert("datos_globales"
						, new CampoValor("porcent_extra", datos.Porcent_extra.ToString())
						, new CampoValor("porcent_suplementaria", datos.Porcent_suplementaria.ToString())
						, new CampoValor("porcent_nocturna", datos.Porcent_nocturna.ToString())
						, new CampoValor("nro_horas_reglamentaria", datos.Nro_horas_reglamentaria.ToString())
						, new CampoValor("nro_horas_suplementarias", datos.Nro_horas_suplementarias.ToString())
						, new CampoValor("estado_dat_glob", datos.Estado_dat_glob)
						, new CampoValor("fecha_registro_dat_glob",ValidarBuilder.FormatoFecha( datos.Fecha_registro_dat_glob))
						, new CampoValor("id_empr_fk", datos.Id_empr_fk.ToString())
						);
					MessageBox.Show("Se grabo [datos_globales] exitosamente....","Información",MessageBoxButtons.OK,MessageBoxIcon.Information);
				}
				else
				{
					bd.EjecutarUpdate("datos_globales", filtro
						, new CampoValor("porcent_extra", datos.Porcent_extra.ToString())
						, new CampoValor("porcent_suplementaria", datos.Porcent_suplementaria.ToString())
						, new CampoValor("porcent_nocturna", datos.Porcent_nocturna.ToString())
						, new CampoValor("nro_horas_reglamentaria", datos.Nro_horas_reglamentaria.ToString())
						, new CampoValor("nro_horas_suplementarias", datos.Nro_horas_suplementarias.ToString())
						, new CampoValor("estado_dat_glob", datos.Estado_dat_glob)
						, new CampoValor("fecha_registro_dat_glob",ValidarBuilder.FormatoFecha( datos.Fecha_registro_dat_glob))
						, new CampoValor("id_empr_fk", datos.Id_empr_fk.ToString())
						);
					MessageBox.Show("Se actualizó [datos_globales] exitosamente....","Información",MessageBoxButtons.OK,MessageBoxIcon.Information);
				}
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
        public static void actualizar_descanso_nc(datos_globales datos)       
		{
			try
			{
				ArquitecturaDB bd = new ArquitecturaDB(mTipoBD);
				string filtro = string.Format("id_dat_glob='{0}'", datos.Id_dat_glob);
				if (Existe(filtro))
				{					
					bd.EjecutarUpdate("datos_globales", filtro
                        , new CampoValor("horas_descanso_nocturna", datos.Horas_descanso_nocturna.ToString())
						);					
				}
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}

		#endregion

		#region < METODOS PUBLICOS RECUPERACION >
		public static datos_globales Recuperar(string filtro)
		{
			datos_globales r = new datos_globales();
			try
			{
				if (Existe(filtro))
				{
					DataTable ds = ListarTodos(filtro);
					r.Id_dat_glob = Convert.ToInt32(ds.Rows[0]["id_dat_glob"]);
					r.Porcent_extra = Convert.ToDecimal(ds.Rows[0]["porcent_extra"]);
					r.Porcent_suplementaria = Convert.ToDecimal(ds.Rows[0]["porcent_suplementaria"]);
					r.Porcent_nocturna = Convert.ToDecimal(ds.Rows[0]["porcent_nocturna"]);
					r.Nro_horas_reglamentaria = Convert.ToInt32(ds.Rows[0]["nro_horas_reglamentaria"]);
					r.Nro_horas_suplementarias = Convert.ToInt32(ds.Rows[0]["nro_horas_suplementarias"]);
					if (ds.Rows[0]["estado_dat_glob"] != System.DBNull.Value)
						r.Estado_dat_glob = ds.Rows[0]["estado_dat_glob"].ToString();
					if (ds.Rows[0]["estado_dat_glob"] == System.DBNull.Value)
						r.Estado_dat_glob = "";
					if (ds.Rows[0]["fecha_registro_dat_glob"] != System.DBNull.Value)
						r.Fecha_registro_dat_glob = Convert.ToDateTime(ds.Rows[0]["fecha_registro_dat_glob"]);
					if (ds.Rows[0]["fecha_registro_dat_glob"] == System.DBNull.Value)
						r.Fecha_registro_dat_glob = DateTime.Now;
					r.Id_empr_fk = Convert.ToInt32(ds.Rows[0]["id_empr_fk"]);
                    r.Horas_descanso_nocturna = Convert.ToInt32(ds.Rows[0]["horas_descanso_nocturna"]);
					r.Empresa = empresaBuilder.Recuperar("id_empr=" + ds.Rows[0]["id_empr_fk"]);
				}
			}
			catch (Exception ex)
			{
				throw ex;
			}
			return r;
		}
		#endregion

		#region < METODOS PUBLICOS BORRADO >
		public static void Borrar(string filtro)
		{
			try
			{
				ArquitecturaDB bd = new ArquitecturaDB(mTipoBD);
				bd.EjecutarDelete("datos_globales", filtro);
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		public static void BorrarTodos()
		{
			try
			{
				Borrar("");
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		#endregion

		#region < METODOS PUBLICOS EXTRAS >
		public static void Listar_Combobox(ComboBox cmbdatos_globales, string filtro, string nombre_display)
		{
			cmbdatos_globales.DataSource = ListarTodos(filtro);
			cmbdatos_globales.DisplayMember = nombre_display;
			cmbdatos_globales.ValueMember = "id_dat_glob";
		}

		public static DataTable ListarTodos_Alias(string filtro)
		{
			DataTable r = new DataTable();
			try
			{
				ArquitecturaDB bd = new ArquitecturaDB(mTipoBD);
				r = bd.EjecutarSelectDs("id_dat_glob AS id_dat_glob,porcent_extra AS porcent_extra,porcent_suplementaria AS porcent_suplementaria,porcent_nocturna AS porcent_nocturna,nro_horas_reglamentaria AS nro_horas_reglamentaria,nro_horas_suplementarias AS nro_horas_suplementarias,estado_dat_glob AS estado_dat_glob,fecha_registro_dat_glob AS fecha_registro_dat_glob,id_empr_fk AS id_empr_fk", "datos_globales", filtro).Tables[0];
			}
			catch (Exception ex)
			{
				throw ex;
			}
			return r;
		}

		public static List<datos_globales> ListarTodos_List(string filtro)
		{
			List<datos_globales> r = new List<datos_globales>();
			try
			{
				DataTable dt = ListarTodos(filtro);
				for (int i = 0; i < dt.Rows.Count; i++)
					r.Add(Recuperar("id_dat_glob="+dt.Rows[i]["id_dat_glob"]));
			}
			catch (Exception ex)
			{
				throw ex;
			}
			return r;
		}

		public static DataTable ListarTodos_Joins_Empresa(string filtro)
		{
			DataTable r = new DataTable();
			string joins_ = "";
			try
			{
				if(filtro=="")
					joins_ = "datos_globales.id_empr_fk = empresa.id_empr";
				else
					joins_ = "datos_globales.id_empr_fk = empresa.id_empr AND " + filtro;
				r = ValidarBuilder.ListarTodos(joins_, "datos_globales, empresa","*").Tables[0];
			}
			catch (Exception ex)
			{
				throw ex;
			}
			return r;
		}

		public static DataTable ListarTodos_Joins_Empresa_Alias(string filtro)
		{
			DataTable r = new DataTable();
			string joins_ = "";
			string campos_ = "datos_globales.id_dat_glob AS datos_globales.id_dat_glob,datos_globales.porcent_extra AS datos_globales.porcent_extra,datos_globales.porcent_suplementaria AS datos_globales.porcent_suplementaria,datos_globales.porcent_nocturna AS datos_globales.porcent_nocturna,datos_globales.nro_horas_reglamentaria AS datos_globales.nro_horas_reglamentaria,datos_globales.nro_horas_suplementarias AS datos_globales.nro_horas_suplementarias,datos_globales.estado_dat_glob AS datos_globales.estado_dat_glob,datos_globales.fecha_registro_dat_glob AS datos_globales.fecha_registro_dat_glob,datos_globales.id_empr_fk AS datos_globales.id_empr_fk," + 
							 "empresa.id_empr AS empresa.id_empr,empresa.ruc_empr AS empresa.ruc_empr,empresa.nombre_empr AS empresa.nombre_empr,empresa.direccion_empr AS empresa.direccion_empr,empresa.telefono_empr AS empresa.telefono_empr,empresa.email_empr AS empresa.email_empr,empresa.encargado_empr AS empresa.encargado_empr,empresa.logo_empr AS empresa.logo_empr,empresa.ciudad_empr AS empresa.ciudad_empr,empresa.tipo_empr AS empresa.tipo_empr";
			try
			{
				if(filtro=="")
					joins_ = "datos_globales.id_empr_fk = empresa.id_empr";
				else
					joins_ = "datos_globales.id_empr_fk = empresa.id_empr AND " + filtro;
				r = ValidarBuilder.ListarTodos(joins_, "datos_globales, empresa",campos_).Tables[0];
			}
			catch (Exception ex)
			{
				throw ex;
			}
			return r;
		}

		public static DataTable ListarTodos_Joins(string filtro)
		{
			DataTable r = new DataTable();
			string joins_ = "";
			try
			{
				if(filtro=="")
					joins_ = "datos_globales.id_empr_fk = empresa.id_empr ";
				else
					joins_ = "datos_globales.id_empr_fk = empresa.id_empr AND  " + filtro;
				r = ValidarBuilder.ListarTodos(joins_, "empresa,datos_globales","*").Tables[0];
			}
			catch (Exception ex)
			{
				throw ex;
			}
			return r;
		}

		public static DataTable ListarTodos_Joins_Alias(string filtro)
		{
			DataTable r = new DataTable();
			string joins_ = "";
			string campos_ = "datos_globales.id_dat_glob AS datos_globales.id_dat_glob,datos_globales.porcent_extra AS datos_globales.porcent_extra,datos_globales.porcent_suplementaria AS datos_globales.porcent_suplementaria,datos_globales.porcent_nocturna AS datos_globales.porcent_nocturna,datos_globales.nro_horas_reglamentaria AS datos_globales.nro_horas_reglamentaria,datos_globales.nro_horas_suplementarias AS datos_globales.nro_horas_suplementarias,datos_globales.estado_dat_glob AS datos_globales.estado_dat_glob,datos_globales.fecha_registro_dat_glob AS datos_globales.fecha_registro_dat_glob,datos_globales.id_empr_fk AS datos_globales.id_empr_fk," + 
							 "empresa.id_empr AS empresa.id_empr,empresa.ruc_empr AS empresa.ruc_empr,empresa.nombre_empr AS empresa.nombre_empr,empresa.direccion_empr AS empresa.direccion_empr,empresa.telefono_empr AS empresa.telefono_empr,empresa.email_empr AS empresa.email_empr,empresa.encargado_empr AS empresa.encargado_empr,empresa.logo_empr AS empresa.logo_empr,empresa.ciudad_empr AS empresa.ciudad_empr,empresa.tipo_empr AS empresa.tipo_empr";
			try
			{
				if(filtro=="")
					joins_ = "datos_globales.id_empr_fk = empresa.id_empr ";
				else
					joins_ = "datos_globales.id_empr_fk = empresa.id_empr AND  " + filtro;
				r = ValidarBuilder.ListarTodos(joins_, "empresa,datos_globales",campos_).Tables[0];
			}
			catch (Exception ex)
			{
				throw ex;
			}
			return r;
		}

		#endregion

		#region < METODOS PUBLICOS VALIDACION >
		public static datos_globales valida_campos_datos_globales(Control ctrl_id_dat_glob,TextBox txt_porcent_extra,TextBox txt_porcent_suplementaria,TextBox txt_porcent_nocturna,Control ctrl_nro_horas_reglamentaria,Control ctrl_nro_horas_suplementarias,TextBox txt_estado_dat_glob,DateTime dpk_fecha_registro_dat_glob,Control ctrl_id_empr_fk)
		{
			bool r = true;
			datos_globales new_datos_globales = new datos_globales();
			try
			{
				if(ctrl_id_dat_glob.GetType().Equals(typeof(TextBox)))
				{
					TextBox txt_id_dat_glob = (TextBox)ctrl_id_dat_glob;
					if (txt_id_dat_glob.TextLength == 0)
					{
						r = false;
						MessageBox.Show("Falta ingresar el/la id_dat_glob","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
					}
					else
					{
						if (Convert.ToInt32(txt_id_dat_glob.Text) == 0)
						{
							r = false;
							MessageBox.Show("Falta ingresar el/la id_dat_glob","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
						}
					}
					if (r)
						new_datos_globales.Id_dat_glob = Convert.ToInt32(txt_id_dat_glob.Text);
				}
				if(ctrl_id_dat_glob.GetType().Equals(typeof(ComboBox)))
				{
					ComboBox cmb_id_dat_glob = (ComboBox)ctrl_id_dat_glob;
					if (cmb_id_dat_glob.SelectedIndex == -1)
					{
						r = false;
						MessageBox.Show("Falta ingresar el/la id_dat_glob","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
					}
					if (r)
						new_datos_globales.Id_dat_glob = Convert.ToInt32(cmb_id_dat_glob.SelectedValue);
				}
				if (txt_porcent_extra.TextLength == 0)
				{
					r = false;
					MessageBox.Show("Falta ingresar el/la porcent_extra","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
				}
				else
				{
					if (txt_porcent_extra.Text.Equals("."))
					{
						r = false;
						MessageBox.Show("Falta ingresar el/la porcent_extra","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
					}
					else
					{
						if (Convert.ToDecimal(txt_porcent_extra.Text) == 0)
						{
							r = false;
							MessageBox.Show("Falta ingresar el/la porcent_extra","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
						}
					}
				}
				if (r)
					new_datos_globales.Porcent_extra = Convert.ToDecimal(txt_porcent_extra.Text);
				if (txt_porcent_suplementaria.TextLength == 0)
				{
					r = false;
					MessageBox.Show("Falta ingresar el/la porcent_suplementaria","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
				}
				else
				{
					if (txt_porcent_suplementaria.Text.Equals("."))
					{
						r = false;
						MessageBox.Show("Falta ingresar el/la porcent_suplementaria","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
					}
					else
					{
						if (Convert.ToDecimal(txt_porcent_suplementaria.Text) == 0)
						{
							r = false;
							MessageBox.Show("Falta ingresar el/la porcent_suplementaria","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
						}
					}
				}
				if (r)
					new_datos_globales.Porcent_suplementaria = Convert.ToDecimal(txt_porcent_suplementaria.Text);
				if (txt_porcent_nocturna.TextLength == 0)
				{
					r = false;
					MessageBox.Show("Falta ingresar el/la porcent_nocturna","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
				}
				else
				{
					if (txt_porcent_nocturna.Text.Equals("."))
					{
						r = false;
						MessageBox.Show("Falta ingresar el/la porcent_nocturna","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
					}
					else
					{
						if (Convert.ToDecimal(txt_porcent_nocturna.Text) == 0)
						{
							r = false;
							MessageBox.Show("Falta ingresar el/la porcent_nocturna","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
						}
					}
				}
				if (r)
					new_datos_globales.Porcent_nocturna = Convert.ToDecimal(txt_porcent_nocturna.Text);
				if(ctrl_nro_horas_reglamentaria.GetType().Equals(typeof(TextBox)))
				{
					TextBox txt_nro_horas_reglamentaria = (TextBox)ctrl_nro_horas_reglamentaria;
					if (txt_nro_horas_reglamentaria.TextLength == 0)
					{
						r = false;
						MessageBox.Show("Falta ingresar el/la nro_horas_reglamentaria","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
					}
					else
					{
						if (Convert.ToInt32(txt_nro_horas_reglamentaria.Text) == 0)
						{
							r = false;
							MessageBox.Show("Falta ingresar el/la nro_horas_reglamentaria","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
						}
					}
					if (r)
						new_datos_globales.Nro_horas_reglamentaria = Convert.ToInt32(txt_nro_horas_reglamentaria.Text);
				}
				if(ctrl_nro_horas_reglamentaria.GetType().Equals(typeof(ComboBox)))
				{
					ComboBox cmb_nro_horas_reglamentaria = (ComboBox)ctrl_nro_horas_reglamentaria;
					if (cmb_nro_horas_reglamentaria.SelectedIndex == -1)
					{
						r = false;
						MessageBox.Show("Falta ingresar el/la nro_horas_reglamentaria","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
					}
					if (r)
						new_datos_globales.Nro_horas_reglamentaria = Convert.ToInt32(cmb_nro_horas_reglamentaria.SelectedValue);
				}
				if(ctrl_nro_horas_suplementarias.GetType().Equals(typeof(TextBox)))
				{
					TextBox txt_nro_horas_suplementarias = (TextBox)ctrl_nro_horas_suplementarias;
					if (txt_nro_horas_suplementarias.TextLength == 0)
					{
						r = false;
						MessageBox.Show("Falta ingresar el/la nro_horas_suplementarias","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
					}
					else
					{
						if (Convert.ToInt32(txt_nro_horas_suplementarias.Text) == 0)
						{
							r = false;
							MessageBox.Show("Falta ingresar el/la nro_horas_suplementarias","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
						}
					}
					if (r)
						new_datos_globales.Nro_horas_suplementarias = Convert.ToInt32(txt_nro_horas_suplementarias.Text);
				}
				if(ctrl_nro_horas_suplementarias.GetType().Equals(typeof(ComboBox)))
				{
					ComboBox cmb_nro_horas_suplementarias = (ComboBox)ctrl_nro_horas_suplementarias;
					if (cmb_nro_horas_suplementarias.SelectedIndex == -1)
					{
						r = false;
						MessageBox.Show("Falta ingresar el/la nro_horas_suplementarias","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
					}
					if (r)
						new_datos_globales.Nro_horas_suplementarias = Convert.ToInt32(cmb_nro_horas_suplementarias.SelectedValue);
				}
				if (txt_estado_dat_glob.TextLength == 0)
				{
					r = false;
					MessageBox.Show("Falta ingresar el/la estado_dat_glob","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
				}
				if (r)
					new_datos_globales.Estado_dat_glob = txt_estado_dat_glob.Text;
				if (r)
					new_datos_globales.Fecha_registro_dat_glob = dpk_fecha_registro_dat_glob;
				if(ctrl_id_empr_fk.GetType().Equals(typeof(TextBox)))
				{
					TextBox txt_id_empr_fk = (TextBox)ctrl_id_empr_fk;
					if (txt_id_empr_fk.TextLength == 0)
					{
						r = false;
						MessageBox.Show("Falta ingresar el/la id_empr_fk","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
					}
					else
					{
						if (Convert.ToInt32(txt_id_empr_fk.Text) == 0)
						{
							r = false;
							MessageBox.Show("Falta ingresar el/la id_empr_fk","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
						}
					}
					if (r)
						new_datos_globales.Id_empr_fk = Convert.ToInt32(txt_id_empr_fk.Text);
				}
				if(ctrl_id_empr_fk.GetType().Equals(typeof(ComboBox)))
				{
					ComboBox cmb_id_empr_fk = (ComboBox)ctrl_id_empr_fk;
					if (cmb_id_empr_fk.SelectedIndex == -1)
					{
						r = false;
						MessageBox.Show("Falta ingresar el/la id_empr_fk","Información",MessageBoxButtons.OK,MessageBoxIcon.Stop);
					}
					if (r)
						new_datos_globales.Id_empr_fk = Convert.ToInt32(cmb_id_empr_fk.SelectedValue);
				}

				if(!r)
					new_datos_globales = null;
			}
			catch (Exception ex)
			{
				throw ex;
			}
			return new_datos_globales;
		}

		public static void grabar_actualizar_registro(Control ctrl_id_dat_glob,TextBox txt_porcent_extra,TextBox txt_porcent_suplementaria,TextBox txt_porcent_nocturna,Control ctrl_nro_horas_reglamentaria,Control ctrl_nro_horas_suplementarias,TextBox txt_estado_dat_glob,DateTime dpk_fecha_registro_dat_glob,Control ctrl_id_empr_fk)
		{
			try
			{
				datos_globales new_datos_globales =valida_campos_datos_globales(ctrl_id_dat_glob,txt_porcent_extra,txt_porcent_suplementaria,txt_porcent_nocturna,ctrl_nro_horas_reglamentaria,ctrl_nro_horas_suplementarias,txt_estado_dat_glob,dpk_fecha_registro_dat_glob,ctrl_id_empr_fk); 
				if(new_datos_globales!=null)
					GrabarViaSql(new_datos_globales);
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}

		#endregion

	}
}
